M.2 SSD 硬盘¶
Copyright © Quectel Wireless Solutions Co., Ltd. 2026. All rights reserved.
M.2 SSD 使用 PCIe 通道接入,本文说明 NVMe SSD 在 Linux 系统中的硬件安装、分区、格式化、挂载和读写测试流程。示例设备名以 /dev/nvme0n1 为例,分区为 /dev/nvme0n1p1。
硬件接口¶
M.2 NVMe SSD 通过 PCIe 接口连接到单板计算机。安装前请先关机断电,确认转接线、GPIO 转接头、尼龙柱和螺钉齐全;如果同一 PCIe/M.2 位置已安装其他 PCIe 设备,请先拆下后再安装 SSD。
快速安装指南¶
将 PCIe 转接线均匀插入单板计算机的 PCIe 接口,再从两侧向下按压固定支架,确保转接线牢固固定。
将 M.2 HAT+ 插入到M2设备 40PIN插口。
插入 M.2 NVMe SSD,确认 SSD 与 HAT 不松动后再上电。
【安装完成正视图】
【安装完成背面图】
【安装完成侧视图】
【M.2 HAT+ 固定完成示意图】
💡 分区、格式化和裸盘写入都会破坏 SSD 原有数据。若 SSD 不是空盘,请先备份数据;不确定时只执行设备识别和只读检查。
软件功能使用¶
确认 NVMe 设备¶
系统启动后,先确认 PCIe 设备和 NVMe 块设备是否被识别。正常情况下会生成 /dev/nvme0 和 /dev/nvme0n1;如果 SSD 已有分区,还会生成 /dev/nvme0n1p1 等分区节点。
lspci -nn
00:00.0 PCI bridge [0604]: Rockchip Electronics Co., Ltd RK3576 [1d87:3576] (rev 01)
01:00.0 Non-Volatile memory controller [0108]: Samsung Electronics Co Ltd NVMe SSD Controller 980 (DRAM-less) [144d:a809]
ls -l /dev/nvme*
crw------- 1 root root 238, 0 Sep 3 09:48 /dev/nvme0
brw-rw---- 1 root disk 259, 0 Sep 3 09:48 /dev/nvme0n1
brw-rw---- 1 root disk 259, 1 Sep 3 09:48 /dev/nvme0n1p1
lsblk -o NAME,MAJ:MIN,RM,SIZE,RO,TYPE,MOUNTPOINT,FSTYPE,MODEL /dev/nvme0n1
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT FSTYPE MODEL
nvme0n1 259:0 0 238.5G 0 disk SAMSUNG MZ9LQ256HBJD-00B
└─nvme0n1p1 259:1 0 238.5G 0 part ext4
fdisk -l /dev/nvme0n1
Disk /dev/nvme0n1: 238.47 GiB, 256060514304 bytes, 500118192 sectors
Disk model: SAMSUNG MZ9LQ256HBJD-00BVL
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 16384 bytes / 131072 bytes
Disklabel type: gpt
Disk identifier: 49D7C880-46CB-4694-AE9C-DBC36EEC5709
Device Start End Sectors Size Type
/dev/nvme0n1p1 2048 500117503 500115456 238.5G Linux filesystem
分区操作(fdisk)¶
新盘或已清空的 SSD 可能只有整盘节点 /dev/nvme0n1,需要先创建分区表和分区。执行以下命令进入 fdisk 交互界面:
fdisk /dev/nvme0n1
在 fdisk 交互界面中依次输入:
g # 创建 GPT 分区表
n # 新建分区,分区号、起始扇区和结束扇区均可保持默认
w # 写入分区表并退出
操作完成后,系统会生成第一个分区 /dev/nvme0n1p1。如分区节点未立即出现,可执行 partprobe 后再次检查。
partprobe /dev/nvme0n1
ls -l /dev/nvme0n1p1
lsblk /dev/nvme0n1
格式化分区(EXT4 格式)¶
使用 mkfs.ext4 将新分区格式化为 EXT4 文件系统:
mkfs.ext4 /dev/nvme0n1p1
手动挂载分区¶
创建挂载目录,并将分区挂载到 /mnt/myssd:
mkdir -p /mnt/myssd
mount /dev/nvme0n1p1 /mnt/myssd
findmnt /mnt/myssd
TARGET SOURCE FSTYPE OPTIONS
/mnt/myssd /dev/nvme0n1p1 ext4 rw,relatime,stripe=32
df -h /mnt/myssd
Filesystem Size Used Avail Use% Mounted on
/dev/nvme0n1p1 234G 2.1M 222G 1% /mnt/myssd
若 df -h 输出中包含 /dev/nvme0n1p1 和 /mnt/myssd,表示挂载成功。
配置自动挂载(可选)¶
如需重启后自动挂载,可在 /etc/fstab 文件末尾添加挂载配置。固定写设备名较直观,量产或长期使用时建议改用 UUID,避免设备名变化导致挂载失败。
# 先查询分区 UUID
blkid /dev/nvme0n1p1
# 编辑 /etc/fstab,在文件末尾添加以下内容(二选一,不要同时添加)
# 方式一:按设备名挂载
/dev/nvme0n1p1 /mnt/myssd ext4 defaults 0 2
# 方式二:按 UUID 挂载(推荐,将 xxxxx 替换为实际 UUID)
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /mnt/myssd ext4 defaults,nofail 0 2
# 保存后验证
mount -a
df -h /mnt/myssd
性能测试(读写速度验证)¶
在已挂载的文件系统上使用 dd 测试读写速度,测试完成后删除临时文件。
dd if=/dev/zero of=/mnt/myssd/testfile bs=1G count=1 oflag=direct
1+0 records in
1+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 3.31848 s, 324 MB/s
dd if=/mnt/myssd/testfile of=/dev/null bs=1G iflag=direct
1+0 records in
1+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 2.50334 s, 429 MB/s
# 清理测试文件
rm -f /mnt/myssd/testfile
sync
卸载与拆装¶
测试完成或需要拆装 SSD/HAT 前,请先同步数据并卸载文件系统,再关机断电。
sync
umount /mnt/myssd